# -*- coding: UTF-8 -*-
# !/usr/bin/python
# @time     :2019/7/27 22:23
# @author   :Mo
# @function :test tf-idf


from tookit_sihui.ml_common.tf_idf.tf_idf import count_tf_idf, count_tf, count_idf
from tookit_sihui.ml_common.tf_idf.tf_idf import save_tf_idf_dict
from tookit_sihui.ml_common.tf_idf.tf_idf import TFIDF


if __name__ == "__main__":
    # 首先输入全部文本构建tf-idf,然后再拿去用
    from tookit_sihui.utils.file_utils import txt_write, txt_read
    path_wiki = 'Y:/BaiduNetdiskDownload/DataSet/corpus/cut_zhwiki_wiki_parse/cut_zhwiki_wiki_parse.txt'
    # 测试1, tf-idf, 调用
    path_dir = 'tf_idf_freq/'
    # ques = ['大漠帝国最强', '花落惊飞羽最漂亮', '紫色Angle最有气质', '孩子气最活泼', '口袋巧克力和过路蜻蜓最好最可爱啦', '历历在目最烦恼']
    # questions = [list(q.strip()) for q in ques]
    # questions = [list(jieba.cut(que)) for que in ques]
    question = txt_read(path_wiki)
    print('read ok!')
    questions = [ques.strip().split(' ') for ques in question[0:1000000]]
    print('split ok!')
    ques_tf = count_idf(questions)
    print('idf ok!')
    ques_idf = count_tf(questions)
    print('tf ok!')
    tf_char, idf_char, tf_idf_char = count_tf_idf(ques_tf, ques_idf)
    print('tf-idf ok!')
    # 保存, tf,idf,tf-idf
    save_tf_idf_dict(path_dir, tf_char, idf_char, tf_idf_char)
    print(ques_tf)
    print(ques_idf)
    print(tf_char)
    print(idf_char)
    print(tf_idf_char)

    # # 测试2, 调用class, input预测
    # tfidf = TFIDF(questions)
    # score1 = tfidf.extract_tf_of_sentence('大漠帝国')
    # score2 = tfidf.extract_idf_of_sentence('大漠帝国')
    # score3 = tfidf.extract_tfidf_of_sentence('大漠帝国')
    # print('tf: ' + str(score1))
    # print('idf: ' + str(score2))
    # print('tfidf: ' + str(score3))
    # while True:
    #     print("请输入: ")
    #     ques = input()
    #     tfidf_score = tfidf.extract_tfidf_of_sentence(ques)
    #     print('tfidf:' + str(tfidf_score))

# 测试结果
# {'强': 1, '最': 6, '国': 1, '帝': 1, '漠': 1, '大': 1, '惊': 1, '落': 1, '漂': 1, '亮': 1, '花': 1, '飞': 1, '羽': 1, 'A': 1, '气': 2, '紫': 1, '质': 1, 'n': 1, '色': 1, 'e': 1, '有': 1, 'g': 1, 'l': 1, '泼': 1, '子': 1, '活': 1, '孩': 1, '可': 1, '路': 1, '力': 1, '克': 1, '巧': 1, '蜻': 1, '蜓': 1, '啦': 1, '和': 1, '过': 1, '爱': 1, '好': 1, '口': 1, '袋': 1, '目': 1, '烦': 1, '历': 1, '在': 1, '恼': 1, 'lens': 6}
# {'大': 1, '漠': 1, '帝': 1, '国': 1, '最': 7, '强': 1, '花': 1, '落': 1, '惊': 1, '飞': 1, '羽': 1, '漂': 1, '亮': 1, '紫': 1, '色': 1, 'A': 1, 'n': 1, 'g': 1, 'l': 1, 'e': 1, '有': 1, '气': 2, '质': 1, '孩': 1, '子': 1, '活': 1, '泼': 1, '口': 1, '袋': 1, '巧': 1, '克': 1, '力': 1, '和': 1, '过': 1, '路': 1, '蜻': 1, '蜓': 1, '好': 1, '可': 1, '爱': 1, '啦': 1, '历': 2, '在': 1, '目': 1, '烦': 1, '恼': 1, 'lens': 54}
# {'强': 0.16666666666666666, '最': 1.0, '国': 0.16666666666666666, '帝': 0.16666666666666666, '漠': 0.16666666666666666, '大': 0.16666666666666666, '惊': 0.16666666666666666, '落': 0.16666666666666666, '漂': 0.16666666666666666, '亮': 0.16666666666666666, '花': 0.16666666666666666, '飞': 0.16666666666666666, '羽': 0.16666666666666666, 'A': 0.16666666666666666, '气': 0.3333333333333333, '紫': 0.16666666666666666, '质': 0.16666666666666666, 'n': 0.16666666666666666, '色': 0.16666666666666666, 'e': 0.16666666666666666, '有': 0.16666666666666666, 'g': 0.16666666666666666, 'l': 0.16666666666666666, '泼': 0.16666666666666666, '子': 0.16666666666666666, '活': 0.16666666666666666, '孩': 0.16666666666666666, '可': 0.16666666666666666, '路': 0.16666666666666666, '力': 0.16666666666666666, '克': 0.16666666666666666, '巧': 0.16666666666666666, '蜻': 0.16666666666666666, '蜓': 0.16666666666666666, '啦': 0.16666666666666666, '和': 0.16666666666666666, '过': 0.16666666666666666, '爱': 0.16666666666666666, '好': 0.16666666666666666, '口': 0.16666666666666666, '袋': 0.16666666666666666, '目': 0.16666666666666666, '烦': 0.16666666666666666, '历': 0.16666666666666666, '在': 0.16666666666666666, '恼': 0.16666666666666666, 'lens': 1.0}
# {'大': 4.754887502163469, '漠': 4.754887502163469, '帝': 4.754887502163469, '国': 4.754887502163469, '最': 2.7548875021634687, '强': 4.754887502163469, '花': 4.754887502163469, '落': 4.754887502163469, '惊': 4.754887502163469, '飞': 4.754887502163469, '羽': 4.754887502163469, '漂': 4.754887502163469, '亮': 4.754887502163469, '紫': 4.754887502163469, '色': 4.754887502163469, 'A': 4.754887502163469, 'n': 4.754887502163469, 'g': 4.754887502163469, 'l': 4.754887502163469, 'e': 4.754887502163469, '有': 4.754887502163469, '气': 4.169925001442312, '质': 4.754887502163469, '孩': 4.754887502163469, '子': 4.754887502163469, '活': 4.754887502163469, '泼': 4.754887502163469, '口': 4.754887502163469, '袋': 4.754887502163469, '巧': 4.754887502163469, '克': 4.754887502163469, '力': 4.754887502163469, '和': 4.754887502163469, '过': 4.754887502163469, '路': 4.754887502163469, '蜻': 4.754887502163469, '蜓': 4.754887502163469, '好': 4.754887502163469, '可': 4.754887502163469, '爱': 4.754887502163469, '啦': 4.754887502163469, '历': 4.169925001442312, '在': 4.754887502163469, '目': 4.754887502163469, '烦': 4.754887502163469, '恼': 4.754887502163469, 'lens': -0.02647221136119107}
# {'强': 0.7924812503605781, '最': 2.7548875021634687, '国': 0.7924812503605781, '帝': 0.7924812503605781, '漠': 0.7924812503605781, '大': 0.7924812503605781, '惊': 0.7924812503605781, '落': 0.7924812503605781, '漂': 0.7924812503605781, '亮': 0.7924812503605781, '花': 0.7924812503605781, '飞': 0.7924812503605781, '羽': 0.7924812503605781, 'A': 0.7924812503605781, '气': 1.3899750004807707, '紫': 0.7924812503605781, '质': 0.7924812503605781, 'n': 0.7924812503605781, '色': 0.7924812503605781, 'e': 0.7924812503605781, '有': 0.7924812503605781, 'g': 0.7924812503605781, 'l': 0.7924812503605781, '泼': 0.7924812503605781, '子': 0.7924812503605781, '活': 0.7924812503605781, '孩': 0.7924812503605781, '可': 0.7924812503605781, '路': 0.7924812503605781, '力': 0.7924812503605781, '克': 0.7924812503605781, '巧': 0.7924812503605781, '蜻': 0.7924812503605781, '蜓': 0.7924812503605781, '啦': 0.7924812503605781, '和': 0.7924812503605781, '过': 0.7924812503605781, '爱': 0.7924812503605781, '好': 0.7924812503605781, '口': 0.7924812503605781, '袋': 0.7924812503605781, '目': 0.7924812503605781, '烦': 0.7924812503605781, '历': 0.6949875002403854, '在': 0.7924812503605781, '恼': 0.7924812503605781, 'lens': -0.02647221136119107}
# tf: 0.07407407407407407
# idf: 6.339850002884625
# tfidf: 0.11740462968304861
# 请输入:
# 大漠
# tfidf:0.05870231484152431
# 请输入: